/**
 * debounce 防抖函数
 * @param {Function} func 防抖执行的函数
 * @param {number} wait 防抖时间
 * @returns 定时器函数
 */

const debounce = (func, wait) => {
  let timeout

  return () => {
    let context = this
    let args = arguments

    clearInterval(timeout)
    timeout = setTimeout(() => func.apply(context, args), wait)
  }
}

/**
 * 搜索框远程搜索，只需要用户输入成功以后才发起请求
 * 表单验证在结束输入以后才会进行验证
 * 窗口大小调整，等待窗口调整结束以后才重新渲染页面，节省页面重绘开支
 */
